,

MPX : Multi-Pointer X

MPX est un acronyme de multi-pointer X Server (Serveur X à multi-pointage). MPX est une modification de X.Org implantée dans le système X Window. Il permet d'utiliser plusieurs pointeurs indépendants au niveau du système de fenêtrage. Contrairement à beaucoup d'autres applications de multi-pointage, MPX permet à de nombreuses applications X Window de s'exécuter sans aucune modification. Il permet entre autre à plusieurs utilisateurs d'exploiter simultanément des applications différentes.

Installation

Depuis Ubuntu 10.04 LTS,Lucid Lynx, MPX est inclus dans Xorg (pour info version 7.5)

Utilisation

Depuis une console, on regarde la configuration actuelle :

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Zalman FPSGUN Mouse                     	id=8	[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse         	id=9	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=11	[slave  pointer  (2)]
⎜   ↳ btnx mouse                              	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ btnx keyboard                           	id=13	[slave  keyboard (3)]

Il existe 1 pointeur virtuel1) et 1 clavier virtuel2) qui sont liés.

On remarque que mes deux souris sont associées au seul pointeur.

On ajoute donc un nouveau pointeur :

$ xinput create-master New

On regarde ce que ça donne, toujours par :

$ xinput list

À la fin nous retrouvons un nouveau couple clavier/souris.

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Zalman FPSGUN Mouse                     	id=8	[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse         	id=9	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=11	[slave  pointer  (2)]
⎜   ↳ btnx mouse                              	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ btnx keyboard                           	id=13	[slave  keyboard (3)]
⎡ New pointer                             	id=15	[master pointer  (16)]
⎜   ↳ New XTEST pointer                       	id=17	[slave  pointer  (15)]
⎣ New keyboard                            	id=16	[master keyboard (15)]
    ↳ New XTEST keyboard                      	id=18	[slave  keyboard (16)]
Vous devez voir un nouveau pointeur inactif sur votre écran.

Maintenant, on va prendre le Zalman FPSGUN Mouse par son identifiant « id=8 » et l'associer à notre nouveau pointeur « id=15 ».

$ xinput reattach 8 15

Ce qui nous donne comme configuration de xinput :

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse         	id=9	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=11	[slave  pointer  (2)]
⎜   ↳ btnx mouse                              	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ btnx keyboard                           	id=13	[slave  keyboard (3)]
⎡ New pointer                             	id=15	[master pointer  (16)]
⎜   ↳ Zalman FPSGUN Mouse                     	id=8	[slave  pointer  (15)]
⎜   ↳ New XTEST pointer                       	id=17	[slave  pointer  (15)]
⎣ New keyboard                            	id=16	[master keyboard (15)]
    ↳ New XTEST keyboard                      	id=18	[slave  keyboard (16)]
Le nouveau curseur doit bouger avec votre seconde souris.

Pour annuler tout ça, on réaffecte notre seconde souris à notre premier curseur « id=2 » :

$ xinput reattach 8 2

Et on supprime notre curseur inutile (toujours id=15) :

$ xinput remove-master 15
Le curseur inutile doit avoir disparu !
Rien n'empêche d'appeler votre curseur comme vous le voulez au lieu de « New ».

Liens Externes


Contributeurs : Ignace72

1)
Virtual core pointer
2)
Virtual core keyboard